home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
592b.lha
/
TermII
/
Fran軋is
/
Exemples XCMD
/
XCMDTools.c
< prev
next >
Wrap
C/C++ Source or Header
|
1991-12-22
|
1KB
|
74 lines
/*
*
* XCMDTools.c
*
* Routines pour faciliter la gestion des XCMD
*
* 14/11/90 - Création - EG -
*
*/
#include <exec/types.h>
#include <exec/memory.h>
#include <exec/ports.h>
#include <clib/exec_protos.h>
#include <clib/alib_protos.h>
#include <stdio.h>
#include "XCMD.h"
#include "XCMDTools.h"
/*
* CreateXCMD()
*
* Création une XCMD. La mémoire est allouée. Elle devra
* être libéree par un DeleteXCMD. Le port passé en paramètre
* est celui du processus externe, c'est à dire celui qui recevra
* les réponses de Term.
*
*/
struct XCMD *CreateXCMD(struct MsgPort *port)
{
struct XCMD *xcmd = AllocMem(sizeof(struct XCMD),MEMF_PUBLIC|MEMF_CLEAR);
if(xcmd)
{
xcmd->xcmd_Message.mn_Length = sizeof(struct XCMD);
xcmd->xcmd_Message.mn_ReplyPort = port;
}
return(xcmd);
}
/*
* DeleteXCMD()
*
* Détruit une XCMD. Libère la mémoire allouée à la création.
*
*/
void DeleteXCMD(struct XCMD *xcmd)
{
FreeMem(xcmd,sizeof(struct XCMD));
}
/*
* SendXCMD()
*
* Envoie une commande vers Term II. Retourne TRUE si
* la XCMD a pu être envoyée, FALSE sinon.
*
*/
BOOL SendXCMD(struct XCMD *xcmd)
{
BOOL sent = FALSE;
struct MsgPort *TermPort;
Forbid() ;
if(TermPort = FindPort("XTERM"))
{
PutMsg(TermPort,xcmd);
sent = TRUE;
}
Permit();
return(sent);
}